package com.jyg.mq.config;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 超时消息转发到私信交换机
 */
@Configuration
public class TTLMessageConfig {

    /**
     * 交换机
     *
     * @return
     */
    @Bean
    public DirectExchange ttlDirectExchange() {
        return new DirectExchange("ttl.direct");
    }

    @Bean
    public Queue ttlQueue() {
        return QueueBuilder
                .durable("ttl.queue") //指定队列名称，并持久化
                .ttl(10000) //设置队列的超时时间，10秒
                .deadLetterExchange("dl.direct")  // 指定死信交换机
                .deadLetterRoutingKey("dl") // 指定死信routingkey
                .build();
    }

    @Bean
    public Binding ttlBinding() {
        return BindingBuilder.bind(ttlQueue()).to(ttlDirectExchange()).with("ttl");
    }
}
